package com.ternnetwork.workflow.listener.interview;

import org.activiti.engine.delegate.DelegateTask;
import org.activiti.engine.delegate.TaskListener;

import com.ternnetwork.core.accesscontroll.service.UserService;
import com.ternnetwork.workflow.context.SpringContextHolder;

import lombok.extern.slf4j.Slf4j;




/**
 * 监听器可以监听用户任务的
 * create（创建） ， assignment（分配）， complete（完成）， all（前面所有事件）
 * 事件，用于邮件通知和分配处理人
 * 例如流程启动时如果希望下一个用户任务的assignee是指定的人，
 * 那么启动时可以将指定的人作为启动参数，然后为下一个任务设定一个监听器
 * 并监听create事件，在notify方法中得到指定的人，然后在设置assignee
 * @author xuwenfeng
 *
 */
@Slf4j
public class TmTaskListener implements TaskListener {

	
	//在 activiti 组件中，要使用服务类只能使用此方式，而不能用注解
	private UserService userService = SpringContextHolder.getBean(UserService.class); 

	/**
	 * 
	 */
	private static final long serialVersionUID = 468229863838124132L;

	@Override
	public void notify(DelegateTask delegateTask) {
		
		
		
		
		System.out.println(userService);
		
		//如果想指定该任务由谁来处理，则用如下代码
		//String assignee=delegateTask.getVariable("assignee").toString();
		//delegateTask.setAssignee(assignee);
		
		log.info("---技术经理任务被创建啦-----");
		
		
	}

}
